#!/bin/bash

:<<EOF
什么是异常捕获

异常捕获在编程中是一个重要的概念。当程序遇到无法处理或者预期之外的错误信号时,   异常捕获能够调用预先定义的错误处理机制,   使得程序能够优雅地中止,
以防止可能出现的程序崩溃或者系统停止运行等问题。在Shell脚本编程中,   我们也可以实现类似的异常捕获。


在Shell脚本中,   “trap”命令用于捕获和处理信号和异常。trap命令允许你在脚本收到特定的信号后,   执行预设的命令序列。
主要语法： trap 'commands' signals


我们先检查锁文件是否存在,   如果存在,   则打印一个消息并退出脚本。如果不存在,   则创建一个锁文件,   并设置一个trap,   在脚本退出时删除这个锁文件;


bash  /home/sky/Desktop/shell/chapter5-process-control-流程控制/lock.sh

EOF


tmpfile="/tmp/mylockfile"
if [ -e "$tmpfile" ]; then
    echo "The script is already running."
    exit 1
fi
touch "$tmpfile"
trap 'rm -f "$tmpfile"' EXIT
echo  'job 1'
echo  'job 2'
echo  'job 3'
echo  'job 4'
sleep  10
echo  'done!'

